Robot controlling device, robot device, robot controlling method, program for carrying out the robot controlling method and recording medium in which the program has been recorded

ABSTRACT

Provided is a robot controlling device which can accurately estimate the temperature of a frame when the drive of a robot arm main body is restarted, thereby can accurately set the distal end of the robot arm main body at a target position.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a robot controlling device adapted tocontrol a robot arm, a robot device provided with the robot controllingdevice, a robot controlling method, a program for carrying out the robotcontrolling method, and a recording medium in which the program has beenrecorded.

2. Description of the Related Art

Generally, a robot arm having a plurality of frames connected by jointsis configured such that motors that drive the individual joints aredisposed inside the frames. Each motor is provided with a temperaturesensor which detects the temperature of the motor to protect the motorfrom overheating.

Thus, a motor is a heat generating element, so that continuing to drivea robot arm main body, which incorporates motors, causes the frames tothermally expand due to the heat generated by the motors. This hascaused the distal end of the robot arm main body to be displaced in somecases.

Conventionally, therefore, the current temperatures of the frames havebeen estimated on the basis of the detected temperatures of thetemperature sensors provided on the motors and the previous estimatedtemperatures of the frames, and then, based on the current estimatedtemperatures of the frames and the thermal expansion coefficients of theframes, the positional displacement of the distal end of the robot armmain body has been calculated. Thus, the rotational position of eachmotor has been controlled to cancel the displacement amount relative toa target position of the distal end of the robot arm main body (refer toJapanese Patent Application Laid-Open No. 2009-297829).

In general, however, when the drive of the robot arm main body isstopped, i.e., when the power is turned off, the execution of a programin the robot controlling device is stopped and the temperatures of theframes are not calculated while the drive of the robot arm main body isstopped.

Hence, according to the conventional configuration, while the drive ofthe robot arm main body is stopped, the temperature histories of theframes during the halt of the drive are unknown. This has made itimpossible to accurately estimate the temperatures of the frames at arestart of the drive of the robot arm main body. Hitherto, therefore, inorder to accurately estimate the temperatures of the frames of the robotarm main body, it has been necessary to wait for the drive of the robotarm main body to resume until the temperature of each frame converges toan ambient temperature. Improvement of this limitation has been desired.

SUMMARY OF THE INVENTION

An object of the present invention is to accurately estimate thetemperature of a frame when the drive of a robot arm main body isrestarted so as to accurately set the distal end of the robot arm mainbody at a target position.

The present invention provides a robot controlling device adapted tocontrol a robot arm which has a robot arm main body which having ajoint, an actuator which is provided inside a frame of the robot armmain body and which drives the joint, and a temperature sensor whichdetects the temperature of the actuator, the robot controlling deviceincluding: a drive controlling unit which controls the drive of theactuator on the basis of a input drive command; and a calculating unitwhich estimates, at predetermined time intervals, a current estimatedtemperature of the frame on the basis of a thermal property of theframe, a temperature detection result obtained by the temperature sensorand a previous estimated temperature of the frame while the robot armmain body is being driven, estimates an estimated position of a distalend of the robot arm main body from the current estimated temperature ofthe frame, and calculates the drive command on the basis of thedisplacement amount of the estimated position relative to a targetposition of the distal end of the robot arm main body, wherein, when thedrive of the robot arm main body is restarted, the calculating unitestimates a previous estimated temperature of the frame on the basis ofthe thermal property of the frame, the drive halt time during which thedrive of the robot arm main body has been stopped, and an estimatedtemperature of the frame determined immediately before the drive of therobot arm main body is stopped.

Further, a robot controlling method according to the present inventionadapted to control a robot arm, which has a robot arm main body having ajoint, an actuator which is provided inside a frame of the robot armmain body and which drives the joint, and a temperature sensor whichdetects the temperature of the actuator, by using a robot controllingunit having a drive controlling unit which controls the drive of theactuator on the basis of an input drive command and a calculating unitwhich outputs the drive command to the drive controlling unit, the robotcontrolling method including: a temperature estimation step in which thecalculating unit estimates, at predetermined time intervals, a currentestimated temperature of the frame on the basis of the thermal propertyof the frame, a temperature detection result obtained by the temperaturesensor and a previous estimated temperature of the frame while the robotarm main body is being driven; a displacement amount calculation step inwhich the calculating unit estimates the position of a distal end of therobot arm main body from a current estimated temperature of the frameand calculates the amount of displacement of an estimated position froma target position of the distal end of the robot arm main body; a drivecommand calculation step in which the calculating unit calculates thedrive command on the basis of the amount of displacement; and a driverestart temperature estimation step in which, when the drive of therobot arm main body is restarted after the drive of the robot arm mainbody is stopped, the calculating unit estimates a previous estimatedtemperature of the frame on the basis of the thermal property of theframe, the drive halt time during which the drive of the robot arm mainbody has been stopped, and an estimated temperature of the frameobtained immediately before the drive of the robot arm main body isstopped.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an explanatory drawing illustrating the schematicconfiguration of a robot device according to an embodiment of thepresent invention.

FIG. 2 is a block diagram illustrating the configuration of the robotcontrolling device according to the embodiment of the present invention.

FIG. 3 is a functional block diagram illustrating the functions of therobot controlling device according to the embodiment of the presentinvention.

FIG. 4 is a flowchart illustrating the control operation of a CPU of therobot controlling device according to the embodiment of the presentinvention.

FIG. 5 is a diagram illustrating temperature changes in motortemperatures, frame temperatures and an ambient temperature when thedrive of a robot arm main body is stopped and when the drive thereof isrestarted.

FIG. 6 is a diagram illustrating the temperature changes in the motortemperatures, the frame temperatures and the ambient temperature whilethe robot arm main body is being driven.

DESCRIPTION OF THE EMBODIMENTS

Preferred embodiments of the present invention will now be described indetail in accordance with the accompanying drawings. FIG. 1 is anexplanatory drawing illustrating the schematic configuration of a robotdevice according to an embodiment of the present invention. A robotdevice 100 includes a robot arm 114, which has a multi-joint robot armmain body 115, and a robot hand 129 serving as an end effector providedat a distal end 115 a of the robot arm main body 115. The robot device100 further includes a robot controlling device 101, which controls therobot arm 114 and the robot hand 129.

The robot arm 114 has a plurality of frames 116 to 120 connected byjoints 121 to 124 and electric motors (hereinafter referred to as “themotors”) 125 to 128 functioning as a plurality of actuators that drivethe joints 121 to 124.

Specifically, the second frame 117 is rotatively or swingably connectedat the first joint 121 with respect to the first frame 116, and thethird frame 118 is rotatively or swingably connected at the second joint122 with respect to the second frame 117. Further, the fourth frame 119is rotatively connected at the third joint 123 with respect to the thirdframe 118, and the fifth frame 120 is rotatively or swingably connectedat the fourth joint 124 with respect to the fourth frame 119.

The first motor 125, which drives the first joint 121, is disposedinside the first frame 116, and the second motor 126, which drives thesecond joint 122, is disposed inside the second frame 117. Further, thethird motor 127, which drives the third joint 123, is disposed insidethe third frame 118, and the fourth motor 128, which drives the fourthjoint 124, is disposed inside the fourth frame 119.

Further, the motors 125 to 128 individually incorporate thereintemperature sensors 131 to 134, such as thermocouples, resistancetemperature detectors, or thermistors, to detect the temperatures of themotors 125 to 128.

The robot hand 129 working as an end effector is installed to the distalend of the fifth frame 120 to impart direct effect to a workpiece (notshown), such as holding the workpiece. Provided around the robot armmain body 115 of the robot arm 114 is a temperature sensor 130, such asa thermocouple, a resistance temperature detector or a thermistor, todetect the ambient temperature of the robot arm main body 115.

FIG. 2 is a block diagram illustrating the configuration of a robotcontrolling device according to an embodiment of the present invention.A robot controlling device 101 includes a CPU 103 constituting acalculating unit, a ROM 141, a RAM 142, an HDD 104 constituting astoring unit, a recording disk drive 143 and various interfaces 144 to147. The robot controlling device 101 further has a motor controllingunit 102 serving as a drive controlling unit that controls the drive ofa plurality of motors 125 to 128.

Connected to the CPU 103 through a bus 148 are the ROM 141, the RAM 142,the HDD 104, the recording disk drive 143 and the various interfaces 144to 147. A basic program, such as BIOS, is stored in the ROM 141. The RAM142 is a memory device for temporarily storing arithmetic processingresults of the CPU 103.

The HDD 104 is a storing unit for storing various types of data, whichis the arithmetic processing results of the CPU 103, and the HDD 104also records a program 151 for causing the CPU 103 to carry out varioustypes of arithmetic processing. The CPU 103 carries out various types ofarithmetic processing according to the program 151 recorded or stored inthe HDD 104.

The temperature sensors 130 to 134 are connected to the interface 144.The CPU 103 receives the inputs of temperature detection results, i.e.,temperature data, from the temperature sensors 130 to 134 through theinterface 144 and the bus 148.

The motor controlling unit 102 is connected to the interface 147. TheCPU 103 outputs, at predetermined time intervals, the data on individualdrive commands indicating the control amounts of the rotational anglesof the motors 125 to 128 to the motor controlling unit 102 through thebus 148 and the interface 147. The motor controlling unit 102 calculatesthe output amount of the current to be supplied to each of the motors125 to 128 on the basis of each of the drive commands input from the CPU103 serving as the calculating unit, and supplies the current to each ofthe motors 125 to 128, thereby controlling the position of the distalend 115 a of the robot arm main body 115. The drive commands are currentcommands indicating the values of currents to be output to the motors125 to 128.

A monitor 149 is connected to the interface 145. The monitor 149displays various images. The interface 146 is configured to permitconnection of an external storage device 150, such as a rewritablenonvolatile memory or an external HDD. The recording disk drive 143 iscapable of reading a program or the like recorded in the recording disk152.

FIG. 3 is a functional block diagram illustrating the functions of therobot controlling device according to an embodiment of the presentinvention. In the present embodiment, the CPU 103 serving as thecalculating unit reads the program 151 (FIG. 2) from the HDD 104 andcarries out the program 151 when an operator turns the power on or whenother start operation is performed. Then, the CPU 103 functions as aframe temperature calculating unit 105, a frame expansion calculatingunit 106, a forward kinematics calculating unit 107 and an inversekinematics calculating unit 108 by carrying out the program 151. The CPU103 stops carrying out the program 151 when the operator performs anoperation, including the turning off of the power, or in case of anemergency stop.

The HDD 104 serving as a storing unit has a data storing unit 109, atemperature calculation formula storing unit 110, an expansioncalculation formula storing unit 111, and a trajectory storing unit 112,which indicate storage areas that are different from each other.Although the HDD 104 according to the present embodiment has the storingunits 109 to 112, the storage medium is not limited to the HDD 104 andmay be any storage medium as long as it is a rewritable nonvolatilestorage medium in which data is not erased when the power is turned off.Further, the number of the storage media may be more than one ratherthan being limited to one.

The frame temperature calculating unit 105 estimates, by calculation atpredetermined time intervals, the current estimated temperatures of theframes 116 to 119 on the basis of the temperature detection resultsobtained by the temperature sensors 130 to 134 and the previousestimated temperatures of the frames 116 to 119 while the robot arm mainbody 115 is being driven. In this case, “the current estimatedtemperature” means “the present estimated temperature” and “the previousestimated temperature” means a temperature estimated a predeterminedtime interval before with respect to “the current estimatedtemperature.” Alternatively, the frame temperature calculating unit 105may obtain the estimated temperatures of the frames 116 to 119 on thebasis of the temperature detection results supplied by the temperaturesensors 130 to 134. The frame temperature calculating unit 105 obtainsthe estimated temperatures of the frames 116 to 119 that include thereinthe motors 125 to 128, which are heating elements, among the pluralityof the frames 116 to 120.

The estimated temperatures of the frames 116 to 119 calculated by theframe temperature calculating unit 105 are stored in the data storingunit 109. The times which are associated with the estimated temperaturesand which indicate the times when the processing for calculating theestimated temperatures started are also stored in the data storing unit109. Further, the data storing unit 109 also stores the ambienttemperatures which are detected by the temperature sensor 130 and whichare used when the estimated temperatures are determined. In other words,the estimated temperatures, the ambient temperatures and the times arestored as data in the data storing unit 109.

The data storing unit 109 preferably stores the data such that the datais overwritten each time the estimated temperature of each of the frames116 to 119 is calculated. Alternatively, however, the data may besequentially stored. In any case, while the robot arm main body 115 isbeing driven, the frame temperature calculating unit 105 reads out thelatest estimated temperatures of the frames 116 to 119 stored in thedata storing unit 109 as the previous estimated temperatures used whenthe current estimated temperatures of the frames 116 to 119 aredetermined.

The temperature calculation formula storing unit 110 stores calculationformulas used to estimate the temperatures of the frames 116 to 119.More specifically, the frame temperature calculating unit 105 uses thecalculation formulas stored in the temperature calculation formulastoring unit 110 to calculate the estimated temperatures of the frames116 to 119.

The expansion calculation formula storing unit 111 stores calculationformulas for calculating the expansion amounts of the frames 116 to 119.The frame expansion calculating unit 106 acquires the current estimatedtemperatures of the frames 116 to 119 from the frame temperaturecalculating unit 105, and estimates by calculation the expansion amountsof the frames 116 to 119 according to the calculation formulas stored inthe expansion calculation formula storing unit 111.

The trajectory storing unit 112 stores a target trajectory of the robotarm main body 115, i.e., the target position of the distal end 115 a ofthe robot arm main body 115.

The forward kinematics calculating unit 107 calculates the estimatedposition of the distal end 115 a of the robot arm main body 115 from theexpansion amount of each of the frames 116 to 119 by using forwardkinematics, and calculates the positional displacement amount, which isthe difference between a target position read from the trajectorystoring unit 112 and the estimated position. Then, based on thedisplacement amount, a drive command to be output to the motorcontrolling unit 102 is calculated.

FIG. 4 is a flowchart illustrating the control operation of the CPU of arobot controlling device according to the embodiment of the presentinvention. The following will describe in detail the operation of arobot controlling device 101 with reference to the flowchart shown inFIG. 4.

Upon a restart of the drive of the robot arm main body 115, the frametemperature calculating unit 105 reads the data on the estimatedtemperatures of the frames 116 to 119, the ambient temperatures, and thetimes stored in the data storing unit 109 (S1). The data read from thedata storing unit 109 in this case includes the estimated temperaturesof the frames 116 to 119 immediately before the drive of the robot armmain body 115 was stopped, the times at which the estimated temperatureswere obtained, and the ambient temperatures used when the estimatedtemperatures were calculated.

The restart of the drive of the robot arm main body 115 means therestart of the execution of the program 151 by the CPU 103 of the robotcontrolling device 101 (setting a state in which the arithmeticprocessing of a drive command is enabled). In other words, the time atwhich the drive is restarted is the time at which the CPU 103 restartsthe arithmetic processing according to the program 151. Further,stopping the drive of the robot arm main body 115 means that the CPU 103stops carrying out the program 151. In other words, the time at whichthe drive is stopped means the time at which the CPU 103 stops carryingout the arithmetic processing according to the program 151.

Subsequently, the frame temperature calculating unit 105 calculates theelapsed time (the drive halt time), which is the difference between thecurrent time, i.e., the time when the drive of the robot arm main body115 is restarted, and the time read from the data storing unit 109 (S2).In other words, in this step S2, the frame temperature calculating unit105 calculates the difference between the read time and the current timeso as to estimate the time elapsed from a stop to a restart of thecalculation of the temperatures of the frames 116 to 119.

Further, the frame temperature calculating unit 105 reads the ambienttemperature from the temperature sensor 130 at the current time, i.e.,the time when the drive of the robot arm main body 115 is restarted(S3).

Next, the frame temperature calculating unit 105 reads expression (1) toexpression (4) given below from the temperature calculation formulastoring unit 110. Then, the frame temperature calculating unit 105calculates, from the data read from the data storing unit 109, theestimated temperatures of the frames 116 to 119 at the time when thedrive of the robot arm main body 115 is restarted according toexpression (1) to expression (4) (S4: drive restart temperatureestimation step).

α_(1s) =A ₁·α_(1e)·exp(−Δt/B ₁)+(1−A ₁)·α_(1e)·exp(−Δt/C ₁)+Δα_(R)   (1)

α_(2s) =A ₂·α_(2e)·exp(−Δt/B ₂)+(1−A ₂)·α_(2e)·exp(−Δt/C ₂)+Δα_(R)   (2)

α_(3s) =A ₃·α_(3e)·exp(−Δt/B ₃)+(1−A ₃)·α_(3e)·exp(−Δt/C ₃)+Δα_(R)   (3)

α_(4s) =A ₄·α_(4e)·exp(−Δt/B ₄)+(1−A ₄)·α_(4e)·exp(−Δt/C ₄)+Δα_(R)   (4)

Expression (1), expression (2), expression (3) and expression (4) arecalculation formulas for calculating the estimated temperatures of thefirst frame 116, the second frame 117, the third frame 118, and thefourth frame 119, respectively, when the drive of the robot arm mainbody 115 is restarted.

α_(is) (i=1, 2, 3 or 4) denotes the estimated temperature of the frame116, 117, 118 or 119 when the drive of the robot arm main body 115 isrestarted, and provides the previous estimated temperature of the frame116, 117, 118 or 119, which will be used for the subsequent calculation.

α_(ie) (i=1, 2, 3 or 4) denotes the estimated temperature of the frame116, 117, 118 or 119 immediately before the drive of the robot arm mainbody 115 is stopped, which estimated temperature has been read in stepS1. Δt denotes the drive halt time (elapsed time) calculated in step S2.Δα_(R) denotes a change in the current ambient temperature (the ambienttemperature when the drive of the robot arm main body 115 is restarted),which has been read from the temperature sensor 130 in step S3, withrespect to the ambient temperature read from the data storing unit 109in step S1.

Further, A_(i), B_(i) and C_(i) (i=1, 2, 3 or 4) are coefficientsindicating the characteristics of heat radiation from the frames 116 to119 to the atmosphere and the characteristics of heat transmission fromthe motors 125 to 128 to the frames 116 to 119. These coefficientsA_(i), B_(i) and C_(i) are determined by measuring beforehand thecharacteristics of the first frame 116 to the fourth frame 119.

More specifically, the frame temperature calculating unit 105 estimatesin step S4 the estimated temperature α_(is) of each of the frames 116 to119 on the basis of the heat characteristics (the heat radiationcharacteristic and the heat transmission characteristic) of each of theframes 116 to 119, the drive halt time Δt, and the estimated temperatureα_(ie) of each of the frames 116 to 119.

The following will describe in detail an example of the method forestimating the temperature of the first frame 116 when the drive of therobot arm main body 115 is restarted.

FIG. 5 is a diagram illustrating the temperature changes in the motortemperature, the frame temperature and the ambient temperature when thedrive of the robot arm main body 115 is stopped and when the drivethereof is restarted. Referring to FIG. 5, t denotes time, t_(e) denotesthe time when the drive of the robot arm main body 115 is stopped (whenthe power is turned off), and t_(s) denotes the time when the drive ofthe robot arm main body 115 is restarted. Further, α denotes atemperature rise, α_(1e) denotes the estimated temperature of the firstframe 116 immediately before the drive of the robot arm main body 115 isstopped, α_(1s) denotes the estimated temperature of the first frame 116when the drive is restarted, α_(R) denotes the ambient temperature, andΔα_(R) denotes a change in the ambient temperature at the time when thedrive is restarted with respect to the time when the drive is stopped.

In FIG. 5, the robot arm main body 115 is driven from time 0 to timet_(e), during which the temperature of the first motor 125 rises, asshown in FIG. 5. The current estimated temperature of the first frame116 is estimated until time t_(e) according to the method, which will bediscussed hereinafter, on the basis of the detection temperature of thefirst motor 125 and the previous estimated temperature of the firstframe 116.

The acquisition of the detection temperature of the first motor 125 orthe calculation of the estimated temperature of the first frame 116 isnot carried out during the drive halt time Δt from time t_(e) when thedrive of the robot arm main body 115 is stopped to time t_(s) when thedrive of the robot arm main body 115 is restarted. The temperatureα_(1s) of the first frame 116 at time t_(s) at which the drive of therobot arm main body 115 is restarted is determined by the temperaturehistory of the first motor 125 from time t_(e) to time t_(s) and thechange Δα_(R) in the ambient temperature. For this reason, thetemperature α_(1s) of the first frame 116 cannot be estimated from atemperature α_(M1) of the first motor 125 when the drive of the robotarm main body 115 is restarted.

According to the present embodiment, therefore, the frame temperaturecalculating unit 105 substitutes the values of the estimated temperatureα_(1e) of the first frame 116, the drive halt time Δt, and the changeΔα_(R) in the ambient temperature into expression (1) mentioned abovethereby to estimate the estimated temperature α_(1s) of the first frame116. The estimated temperature α_(1s) obtained as described above isused as the previous estimated temperature of the first frame 116 in thecalculation processing in a subsequent step S6.

Subsequently, the frame temperature calculating unit 105 reads thetemperatures of the motors 125 to 128 and the ambient temperature of therobot arm main body 115 from the temperature sensors 130 to 134 in apredetermined time interval from the time at which the estimatedtemperatures of the frames 116 to 119 were calculated last (S5).

Then, the frame temperature calculating unit 105 carries out thearithmetic processing for estimating the current (present) estimatedtemperatures of the frames 116 to 119 by using the calculation formulasread from the temperature calculation formula storing unit 110 (S6:temperature estimation step). The current estimated temperatures of theframes 116 to 119 which have been calculated are output to the frameexpansion calculating unit 106.

In step S6, the calculation formulas read from the temperaturecalculation formula storing unit 110 by the frame temperaturecalculating unit 105 are described, for example, as follows.

α′₁=α₁ +dt(D ₁·α_(M1) −E ₁·α₁ +F ₁·α_(R))   (5)

α′₂=α₂ +dt(D ₂·α_(M2) −E ₂·α₂ +F ₂·α_(R))   (6)

α′₃=α₃ +dt(D ₃·α_(M3) −E ₃·α₃ +F ₃·α_(R))   (7)

α′₄=α₄ +dt(D ₄·α_(M4) −E ₄·α₄ +F ₄·α_(R))   (8)

Expression (5), expression (6), expression (7) and expression (8) arecalculation formulas for calculating the current estimated temperaturesof the first frame 116, the second frame 117, the third frame 118, andthe fourth frame 119, respectively.

Expressions (5) to (8) have been derived as follows. First, if theamount of heat transmitted to the frames 116 to 119 is denoted by Q_(in)(J), while the amount of heat radiated to the surrounding area from theframes 116 to 119 is denoted by Q_(out) (J), then the followingexpression (9) and expression (10) are derived.

Q _(in) =k·S/x(α_(M)−α)dt   (9)

Q _(out) =hS′(α−α_(R))dt   (10)

In the above expressions, k denotes the thermal conductivity (W/mK),which indicates the ease of transmission of the heat from the motors 125to 128 to the frames 116 to 119, S denotes the sectional area (m²) ofheat transfer, and x denotes the distance (m) of heat transfer. Further,α_(M) denotes a temperature change (° C.) from a reference value of themotor temperature, α denotes a temperature change (° C.) from areference value of the frame temperature, and h denotes the heattransfer coefficient (W/m²K) indicating the ease of heat radiation tothe surrounding area from the frames 116 to 119. S′ denotes the surfacearea (m²) of heat radiation to the surrounding area from the frames 116to 119, and dt denotes a calculation interval (predetermined timeinterval).

Further, the temperature rise of each of the frames 116 to 119attributable to the difference between Q_(in) and Q_(out) can berepresented by expression (11) given below.

Q _(in) −Q _(out) =cρV(α′−α)   (11)

In expression (11), c denotes the specific heat (J/kgK) of each of theframes 116 to 119, ρ denotes the density (kg/m³) of each of the frames116 to 119, and V denotes the volume (m³) of each of the frames 116 to119. α denotes the previous estimated temperature (° C.) of each of theframes 116 to 119 and α′ denotes the current estimated temperature (°C.) of each of the frames 116 to 119.

Expressions (9), (10) and (11) are organized into expression (12) givenbelow.

K ₁(α_(M)−α)dt−K ₂(α−α_(R))dt=K ₃(α′−α)   (12)

K₁ denotes k·S/x, K₂ denotes hS′, and K₃ denotes cρV.

Further, expression (12) can be organized into expression (13) givenbelow.

α′=α+dt(D·α _(M) −E·α+F·α _(R))   (13)

D denotes K₁/K₃, E denotes (K₁+K₂)/K₃, and F denotes K₂/K₃. Expression(13) is provided for each of the frames 116 to 119, so that the fourexpressions (5) to (8) are prepared. D_(i), E_(i) and F_(i) (i=1, 2, 3or 4) denote the coefficients determined by measuring beforehand thetemperature characteristics in the frames 116 to 119.

More specifically, the frame temperature calculating unit 105 estimatesin step S6 the current estimated temperature α′_(i) of each frame on thebasis of the heat characteristics of the frames 116 to 119, thetemperature detection results provided by the temperature sensors 130 to134, and the previous estimated temperature α_(i) of each frame.

The method for calculating the temperature of the first frame 116, as anexample, will now be described in detail. FIG. 6 is a diagramillustrating the temperature changes in the motor temperature, the frametemperature and the ambient temperature while the robot arm main body115 is being driven. Referring to FIG. 6, α₁ denotes the previousestimated temperature of the first frame 116 calculated at time t_(n−2),which is before the current time t_(n) by the predetermined timeinterval dt. α′₁ denotes the current estimated temperature of the firstframe 116 calculated at time t_(n). α_(M1) denotes the temperature ofthe first motor 125, and α_(R) denotes the ambient temperature.

The estimated temperature α′₁ of the first frame 116 is calculatedaccording to expression (5) by using the estimated temperature α₁ of thefirst frame 116 that has been calculated last time, the current firstmotor temperature α_(M1) and the ambient temperature α_(R). Thecalculation interval (the predetermined time interval) dt is, forexample, 1 second.

By repeating the calculation at the predetermined time interval dt, thehistory of the motor temperature, the history of the frame temperature,and the history of the ambient temperature are integrated, as indicatedby expressions (5) to (8). Therefore, even if the operation is changedand the calorific value of the motor 125, 126, 127 or 128 changes or ifthe ambient temperature changes while the robot arm main body 115 isbeing driven, the temperature of each of the frames 116 to 119 can beaccurately estimated.

When the drive of the robot arm main body 115 is restarted, the previousestimated temperature used to determine the current estimatedtemperature of each of the frames 116 to 119 in step S6 is determined bythe processing in steps S1 to S4.

Subsequently, the frame temperature calculating unit 105 transmits theobtained estimated temperature of each of the frames 116 to 119, thetime at which each of the estimated temperatures was obtained, and theambient temperature used to calculate each of the estimated temperaturesto the data storing unit 109 so as to store the data in the data storingunit 109 (S7).

Further, the frame temperature calculating unit 105 sends the data onthe obtained current estimated temperatures of the frames 116 to 119 tothe frame expansion calculating unit 106.

The frame expansion calculating unit 106 reads the calculation formulasof expressions (14) to (17) given below from the expansion calculationformula storing unit 111, and calculates the expansion amount of each ofthe frames 116 to 119 according to the calculation formulas ofexpressions (14) to (17) from the current estimated temperature of eachof the frames 116 to 119 (S8).

ΔL ₁=α′₁×δhd 1 ×L ₁   (14)

ΔL ₂=α′₂×δhd 2 ×L ₂   (15)

ΔL ₃=α′₃×δhd 3 ×L ₃   (16)

ΔL ₄=α′₄×δhd 4 ×L ₄   (17)

Expressions (14), (15), (16), and (17) are calculation formulas forcalculating the expansion amounts of the first frame, the second frame,the third frame, and the fourth frame, respectively. In other words,these calculation formulas include the information on the expansionrates and the lengths of the frames 116 to 119.

In this case, δ_(i) (i=1, 2, 3 or 4) denotes the coefficient ofexpansion of each frame material. For example, the coefficient ofexpansion of typical aluminum is 24×10⁻⁶/° C. If the frames 116 to 119are composed of a plurality of materials, then the coefficient ofexpansion δ_(i) used here may use the mean value thereof.

Further, L_(i) (i=1, 2, 3 or 4) denotes the length of each of the frames116 to 119, specifically, for example, the axis-to-axis distance. Thelength L_(i) of each of the frames 116 to 119 denotes the length forcalculating the amount of expansion ΔL_(i) caused by heat. Hence, ifthere is a portion that does not contribute to the thermal expansion,then the length of the portion may be excluded.

The frame expansion calculating unit 106 sends the calculated amounts ofexpansion of the frames 116 to 119 to the forward kinematics calculatingunit 107.

The forward kinematics calculating unit 107 calculates the estimatedposition of the distal end 115 a of the robot arm main body 115 by usingthe data on the amounts of expansion of the frames 116 to 119attributable to heat by forward kinematics calculation. Then, theforward kinematics calculating unit 107 reads the target position of thedistal end 115 a of the robot arm main body 115 from the trajectorystoring unit 112, and calculates the amount of displacement of theestimated position from the read target position (S9: displacementamount calculation step). The forward kinematics calculating unit 107sends the data on the calculated displacement amount to the inversekinematics calculating unit 108.

Subsequently, the inverse kinematics calculating unit 108 calculates thecorrection amount of the rotational angle of each of the joints 121 to124 by inverse kinematics calculation from the positional displacementamount of the distal end 115 a of the robot arm main body 115 (S10) andthen calculates a drive command that provides a control amount on whichthe correction amount has been reflected (S11). In other words, theinverse kinematics calculating unit 108 calculates a drive command onthe basis of the displacement amount of the distal end 115 a in thesesteps S10 and S11 (drive command calculation step). The inversekinematics calculating unit 108, i.e., the CPU 103, outputs thecalculated drive command to the motor controlling unit 102. The motorcontrolling unit 102 supplies electric current to the motors 125 to 128in response to received drive commands, thus causing the motors 125 to128 to drive the joints 121 to 124 according to control amounts based onthe drive commands.

The CPU 103 checks whether correction control is ON (S12), and if thecorrection controls is ON (S12: Yes), then the CPU 103 returns to thearithmetic processing in step S5 to repeat the control. If thecorrection control is OFF (S12: No), then the correction control isstopped. In this case, the state in which the correction control is OFFmeans the state in which the drive of the robot arm main body 115 is athalt, as in the case of an emergency stop or in the case where the powerof the robot device 100 is turned off.

Then, when the drive of the robot arm main body 115 is restarted, theCPU 103 carries out the processing from step S1 and obtains theestimated temperatures of the frames 116 to 119 at the restart of thedrive by using the data before the drive was stopped, which has beenrecorded in the data storing unit 109, as described above.

Thus, according to the present embodiment, after the drive of the robotarm main body 115 is stopped, even if the drive of the robot arm mainbody 115 is restarted before the temperatures of the frames 116 to 119completely fall to an ambient temperature, the temperatures of theframes 116 to 119 can be accurately estimated. As a result, the distalend 115 a of the robot arm main body 115 can be accurately set at atarget position when the drive is restarted.

Further, the ambient temperature of the robot arm main body 115 is alsoused for calculating the estimated temperatures of the frames 116 to119, so that the positional displacement of the distal end 115 a can beaccurately corrected even if the thermal expansions of the frames 116 to119 change due to a change in the ambient temperature.

It is to be understood that the present invention is not limited to theembodiments described above. To the contrary, the invention can beembodied in many modifications within the technical spirit of thepresent invention by persons ordinarily skilled in the art.

In the aforesaid embodiments, the description has been given of the casewhere the robot arm 114 is a vertical multi-joint robot. However, therobot arm 114 may alternatively be a horizontal multi-joint robot, aparallel link robot or the like.

Further, in the aforesaid embodiments, the description has been given ofthe case where the ambient temperature changes; however, the presentinvention is not limited thereto. If the environment in which the robotarm 114 is placed has a constant temperature, then it is unnecessary totake a change in the ambient temperature into account when calculatingthe estimated temperatures of the frames 116 to 119. More specifically,+Δα_(R) may be omitted in the calculation formulas of expression (1) toexpression (4).

Further, in the aforesaid embodiments, the description has been given ofthe case where the actuators are electric motors; however, the actuatorsare not limited thereto. For example, if the joints are prismaticjoints, then electric linear actuators may be used, as the actuators, inplace of the electric motors. In this case also, the present inventionis applicable. Especially when the electric actuators are used as theactuators, much heat is generated by energization, so that the distalend of the robot arm main body can be effectively set at a targetposition by the present invention.

Further, in the aforesaid embodiments, the description has been given ofthe case where the robot arm main body has four joints; however, thenumber of the joints is not limited thereto. The robot arm main body mayhave any number of joints, provided that it has at least one joint.

Each of the processing operations of the embodiments described above isspecifically carried out by the CPU 103 serving as the calculating unitof the robot controlling device 101. Therefore, the processingoperations may alternatively be accomplished by supplying a recordingmedium in which a program for implementing the functions described abovehas been recorded to the robot controlling device 101 and by reading andexecuting the program stored in the recording medium by a computer (CPUor MPU) of the robot controlling device 101. In this case, the programitself read from the recording medium will implement the functions ofthe aforesaid embodiments, and the program itself and the recordingmedium in which the program has been recorded will constitute thepresent invention.

Further, in the aforesaid embodiments, the description has been given ofthe case where the computer-readable recording medium is the HDD 104 andthe program 151 is stored in the HDD 104; however, the present inventionis not limited thereto. The program 151 may be recorded in any type ofrecording medium, provided that it is a computer-readable recordingmedium. The recording medium used for supplying the program may be, forexample, the ROM 141, the external storage device 150 or the recordingdisk 152 shown in FIG. 2. Specific examples of the recording medium thatcan be used include a flexible disk, a hard disk, an optical disk, amagneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatilememory card, and a ROM.

Further, the program in the aforesaid embodiments may be downloadedthrough a network and executed by a computer.

The present invention is not limited to the case where the functions ofthe aforesaid embodiments are implemented by carrying out program codesread by a computer. The present invention also includes a case where anoperating system (OS) or the like running on a computer carries out apart or all of actual processing according to the instructions of theprogram codes so as to implement the functions of the aforesaidembodiments by the processing.

Further, the program codes read from a recording medium may be writtento a memory provided in a feature enhancement board inserted in acomputer or a feature enhancement unit connected to a computer. Thepresent invention further includes a case where a CPU or the likeprovided in the feature enhancement board or the feature enhancementunit carries out a part or all of the actual processing according to theinstructions of the program codes so as to implement the functions ofthe aforesaid embodiments by the processing.

According to the present invention, even if the drive of the robot armmain body is restarted before the temperatures of the frames completelyfall to an ambient temperature, the temperatures of the frames can beaccurately estimated. As a result, the distal end of the robot arm mainbody can be accurately set at a target position when the drive isrestarted.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2012-138399, filed on Jun. 20, 2012, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. A robot controlling device which controls a robotarm having a robot arm main body provided with a frame, an actuatorwhich drives the robot arm main body, and a temperature sensor whichdetects the temperature of the actuator, comprising: a drive controllingunit which controls the drive of the actuator on the basis of an inputdrive command; and a calculating unit which estimates an estimatedtemperature of the frame on the basis of a temperature detection resultprovided by the temperature sensor, estimates an estimated position of adistal end of the robot arm main body from the estimated temperature ofthe frame, and calculates a drive command for the actuator on the basisof an amount of displacement of the estimated position of the distal endof the robot arm main body relative to a target position, wherein, inthe case where the drive of the robot arm main body is restarted afterthe drive of the robot arm main body is stopped, the calculating unitestimates an estimated temperature of the frame at the point of time, atwhich the drive of the robot arm main body is restarted, on the basis ofa thermal property of the frame, drive halt time of the robot arm mainbody, and an estimated temperature of the frame obtained immediatelybefore the drive of the robot arm main body is stopped.
 2. The robotcontrolling device according to claim 1, wherein the calculating unitcorrects the estimated temperature of the frame, which was determinedwhen the drive of the robot arm main body was restarted, on the basis ofa change in an ambient temperature of the robot arm main body, whichchange has occurred with the elapse of the drive halt time.
 3. The robotcontrolling device according to claim 1, comprising a storing unit whichstores the estimated temperature of the frame estimated by thecalculating unit, associating the estimated temperature with time whenestimated, wherein the calculating unit calculates, as the drive halttime, a difference between time associated with the estimatedtemperature of the frame immediately before the drive of the robot armmain body is stopped, which has been stored in the storing unit, andtime at which the drive of the robot arm main body is restarted.
 4. Arobot device comprising: a robot arm having a robot arm main bodyprovided with a frame, an actuator which drives the robot arm main body,and a temperature sensor which detects the temperature of the actuator;and the robot controlling device according to claim
 1. 5. A robotcontrolling method for controlling a robot arm, which has a robot armmain body provided with a frame, an actuator which drives the robot armmain body, and a temperature sensor which detects the temperature of theactuator, by using a robot controlling device having a drive controllingunit which controls the drive of the actuator on the basis of an inputdrive command and a calculating unit which outputs the drive command tothe actuator, the robot controlling method comprising: a temperatureestimation step in which, in the case where the drive of the robot armmain body is restarted after the drive of the robot arm main body isstopped, the calculating unit estimates an estimated temperature of theframe at the point of time at which the drive of the robot arm main bodyis restarted on the basis of drive halt time of the robot arm main body,a thermal property of the frame, and an estimated temperature of theframe obtained immediately before the drive of the robot arm main bodyis stopped; a displacement amount calculation step in which thecalculating unit estimates the position of a distal end of the robot armmain body from the estimated temperature of the frame at the point oftime at which the drive of the robot arm main body is restarted andcalculates the amount of displacement of an estimated position of thedistal end of the robot arm main body relative to a target position; anda drive command calculation step in which the calculating unitcalculates a drive command for the actuator on the basis of thedisplacement amount.
 6. A program for causing a computer to carry outthe steps of the robot controlling method according to claim
 5. 7. Acomputer-readable recording medium in which the program according toclaim 6 has been recorded.